/**
 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package ve.com.fitsoft.eicb.encuesta.SB.model;

import com.liferay.portal.kernel.bean.AutoEscapeBeanHandler;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.model.BaseModel;
import com.liferay.portal.model.impl.BaseModelImpl;

import ve.com.fitsoft.eicb.encuesta.SB.service.EncuestaLocalServiceUtil;

import java.io.Serializable;

import java.lang.reflect.Proxy;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author leo
 */
public class EncuestaClp extends BaseModelImpl<Encuesta> implements Encuesta {
	public EncuestaClp() {
	}

	public Class<?> getModelClass() {
		return Encuesta.class;
	}

	public String getModelClassName() {
		return Encuesta.class.getName();
	}

	public long getPrimaryKey() {
		return _idEncuesta;
	}

	public void setPrimaryKey(long primaryKey) {
		setIdEncuesta(primaryKey);
	}

	public Serializable getPrimaryKeyObj() {
		return new Long(_idEncuesta);
	}

	public void setPrimaryKeyObj(Serializable primaryKeyObj) {
		setPrimaryKey(((Long)primaryKeyObj).longValue());
	}

	@Override
	public Map<String, Object> getModelAttributes() {
		Map<String, Object> attributes = new HashMap<String, Object>();

		attributes.put("idEncuesta", getIdEncuesta());
		attributes.put("empresa", getEmpresa());
		attributes.put("objetivo", getObjetivo());
		attributes.put("fechaInicio", getFechaInicio());
		attributes.put("fechaFin", getFechaFin());
		attributes.put("companyId", getCompanyId());
		attributes.put("groupId", getGroupId());

		return attributes;
	}

	@Override
	public void setModelAttributes(Map<String, Object> attributes) {
		Long idEncuesta = (Long)attributes.get("idEncuesta");

		if (idEncuesta != null) {
			setIdEncuesta(idEncuesta);
		}

		String empresa = (String)attributes.get("empresa");

		if (empresa != null) {
			setEmpresa(empresa);
		}

		String objetivo = (String)attributes.get("objetivo");

		if (objetivo != null) {
			setObjetivo(objetivo);
		}

		Date fechaInicio = (Date)attributes.get("fechaInicio");

		if (fechaInicio != null) {
			setFechaInicio(fechaInicio);
		}

		Date fechaFin = (Date)attributes.get("fechaFin");

		if (fechaFin != null) {
			setFechaFin(fechaFin);
		}

		Long companyId = (Long)attributes.get("companyId");

		if (companyId != null) {
			setCompanyId(companyId);
		}

		Long groupId = (Long)attributes.get("groupId");

		if (groupId != null) {
			setGroupId(groupId);
		}
	}

	public long getIdEncuesta() {
		return _idEncuesta;
	}

	public void setIdEncuesta(long idEncuesta) {
		_idEncuesta = idEncuesta;
	}

	public String getEmpresa() {
		return _empresa;
	}

	public void setEmpresa(String empresa) {
		_empresa = empresa;
	}

	public String getObjetivo() {
		return _objetivo;
	}

	public void setObjetivo(String objetivo) {
		_objetivo = objetivo;
	}

	public Date getFechaInicio() {
		return _fechaInicio;
	}

	public void setFechaInicio(Date fechaInicio) {
		_fechaInicio = fechaInicio;
	}

	public Date getFechaFin() {
		return _fechaFin;
	}

	public void setFechaFin(Date fechaFin) {
		_fechaFin = fechaFin;
	}

	public long getCompanyId() {
		return _companyId;
	}

	public void setCompanyId(long companyId) {
		_companyId = companyId;
	}

	public long getGroupId() {
		return _groupId;
	}

	public void setGroupId(long groupId) {
		_groupId = groupId;
	}

	public BaseModel<?> getEncuestaRemoteModel() {
		return _encuestaRemoteModel;
	}

	public void setEncuestaRemoteModel(BaseModel<?> encuestaRemoteModel) {
		_encuestaRemoteModel = encuestaRemoteModel;
	}

	public void persist() throws SystemException {
		if (this.isNew()) {
			EncuestaLocalServiceUtil.addEncuesta(this);
		}
		else {
			EncuestaLocalServiceUtil.updateEncuesta(this);
		}
	}

	@Override
	public Encuesta toEscapedModel() {
		return (Encuesta)Proxy.newProxyInstance(Encuesta.class.getClassLoader(),
			new Class[] { Encuesta.class }, new AutoEscapeBeanHandler(this));
	}

	@Override
	public Object clone() {
		EncuestaClp clone = new EncuestaClp();

		clone.setIdEncuesta(getIdEncuesta());
		clone.setEmpresa(getEmpresa());
		clone.setObjetivo(getObjetivo());
		clone.setFechaInicio(getFechaInicio());
		clone.setFechaFin(getFechaFin());
		clone.setCompanyId(getCompanyId());
		clone.setGroupId(getGroupId());

		return clone;
	}

	public int compareTo(Encuesta encuesta) {
		long primaryKey = encuesta.getPrimaryKey();

		if (getPrimaryKey() < primaryKey) {
			return -1;
		}
		else if (getPrimaryKey() > primaryKey) {
			return 1;
		}
		else {
			return 0;
		}
	}

	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}

		EncuestaClp encuesta = null;

		try {
			encuesta = (EncuestaClp)obj;
		}
		catch (ClassCastException cce) {
			return false;
		}

		long primaryKey = encuesta.getPrimaryKey();

		if (getPrimaryKey() == primaryKey) {
			return true;
		}
		else {
			return false;
		}
	}

	@Override
	public int hashCode() {
		return (int)getPrimaryKey();
	}

	@Override
	public String toString() {
		StringBundler sb = new StringBundler(15);

		sb.append("{idEncuesta=");
		sb.append(getIdEncuesta());
		sb.append(", empresa=");
		sb.append(getEmpresa());
		sb.append(", objetivo=");
		sb.append(getObjetivo());
		sb.append(", fechaInicio=");
		sb.append(getFechaInicio());
		sb.append(", fechaFin=");
		sb.append(getFechaFin());
		sb.append(", companyId=");
		sb.append(getCompanyId());
		sb.append(", groupId=");
		sb.append(getGroupId());
		sb.append("}");

		return sb.toString();
	}

	public String toXmlString() {
		StringBundler sb = new StringBundler(25);

		sb.append("<model><model-name>");
		sb.append("ve.com.fitsoft.eicb.encuesta.SB.model.Encuesta");
		sb.append("</model-name>");

		sb.append(
			"<column><column-name>idEncuesta</column-name><column-value><![CDATA[");
		sb.append(getIdEncuesta());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>empresa</column-name><column-value><![CDATA[");
		sb.append(getEmpresa());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>objetivo</column-name><column-value><![CDATA[");
		sb.append(getObjetivo());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>fechaInicio</column-name><column-value><![CDATA[");
		sb.append(getFechaInicio());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>fechaFin</column-name><column-value><![CDATA[");
		sb.append(getFechaFin());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>companyId</column-name><column-value><![CDATA[");
		sb.append(getCompanyId());
		sb.append("]]></column-value></column>");
		sb.append(
			"<column><column-name>groupId</column-name><column-value><![CDATA[");
		sb.append(getGroupId());
		sb.append("]]></column-value></column>");

		sb.append("</model>");

		return sb.toString();
	}

	private long _idEncuesta;
	private String _empresa;
	private String _objetivo;
	private Date _fechaInicio;
	private Date _fechaFin;
	private long _companyId;
	private long _groupId;
	private BaseModel<?> _encuestaRemoteModel;
}